package ssen.mvc.core {

public interface IInjector extends IDisposable {
	function mapClass(ask:Class, useClass:Class, named:String=""):void;
	function mapSingleton(ask:Class, useClass:Class, named:String=""):void;
	function mapValue(ask:Class, useValue:*, named:String=""):void;

	function hasMapping(ask:Class, named:String=""):Boolean;

	function getInstance(ask:Class, named:String=""):*;
	function instantiate(ask:*):*;
	function injectInto(instance:Object):void;

	function getParent():IInjector;
	function createChild():IInjector;
	function deleteChild(injector:IInjector):void;
	function getChildren():Vector.<IInjector>;
}
}
